<%-- 
    Document   : gerenciarEvento
    Created on : 18/09/2014, 19:36:28
    Author     : luiz
--%>

<%@page import="java.util.ArrayList"%>
<%@page import="dao.OrcamentoDAO"%>
<%@page import="entidade.Orcamento"%>
<%@page import="entidade.Fornecedor"%>
<%@page import="dao.FornecedorDAO"%>
<%@page import="dao.UsuarioDAO"%>
<%@page import="entidade.Evento"%>
<%@page import="dao.EventoDAO"%>
<%@page import="util.Util"%>
<%@page import="java.util.List"%>
<%@page import="dao.UsuarioEventoDAO"%>
<%@page import="entidade.UsuarioEvento"%>
<%@page import="entidade.Usuario"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Listar Eventos</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <link rel="stylesheet" type="text/css" href="css/foundation/foundation.min.css">
        <link rel="stylesheet" type="text/css" href="css/foundation/normalize.css">
        <script src="js/prefixfree-1.0.7.js"></script>
        <script src="js/jquery-1.11.1.min.js"></script>
        <script src="js/jquery-1.7.1.min.js" ></script>
        <script src="js/foundation.min.js"></script>
        <script src="js/script.js"></script>
        <%
            Util util = new Util();
            UsuarioDAO usuarioDAO = new UsuarioDAO();
            Long codigoEvento = 0L;
            EventoDAO eventoDAO = new EventoDAO();
            Evento evento = new Evento();
            UsuarioEventoDAO usuarioEventoDAO = new UsuarioEventoDAO();
            List<UsuarioEvento> listUsuarioEventos = new ArrayList<UsuarioEvento>();
            FornecedorDAO fornecedorDAO = new FornecedorDAO();
            boolean passou = true;
            try
            {
                codigoEvento = Long.parseLong(util.validaParametro(request.getParameter("evento")));
            }
            catch (NumberFormatException e)
            {
                System.out.print("Erro ao pegar parametro");
            }
            if (eventoDAO.buscaID(Evento.class, codigoEvento) != null)
            {
                evento = eventoDAO.buscaID(Evento.class, codigoEvento);
                System.out.print("Evento encontrado");
            }
            else
            {
                System.out.print("Evento iqual a null");
                response.sendRedirect("listarEventos.jsp");
            }
            Long pedido = 0L;
            System.out.printf("11");
            try
            {
                String adcPedidoId = util.validaParametro(request.getParameter("fornecedor"));
                pedido = Long.parseLong(adcPedidoId);
                System.out.printf("22");
            }
            catch (Exception e)
            {
                pedido = 0L;
                passou = false;
            }
            System.out.printf("33");
            if (passou)
            {
                System.out.printf("44");
                Orcamento orcamento = new Orcamento();
                OrcamentoDAO orcamentoDAO = new OrcamentoDAO();
                orcamento = orcamentoDAO.buscarOrcamentoEvento(evento);
                System.out.printf("55");
                if (orcamento.getEvento() == null)
                {
                    orcamento.setEvento(evento);
                    System.out.printf("66");
                }
                fornecedorDAO = new FornecedorDAO();
                Fornecedor adcNovoFornecedor = new Fornecedor();
                try
                {
                    System.out.printf("77");
                    adcNovoFornecedor = fornecedorDAO.buscaID(Fornecedor.class, pedido);
                    System.out.print(adcNovoFornecedor.getNome());
                }
                catch (Exception e)
                {
                    System.out.printf("88");
                    passou = false;
                }
                if (passou)
                {
                    System.out.printf("99");
                    List<Fornecedor> Listafornecedor = new ArrayList<Fornecedor>();
                    System.out.printf("110");
                    Listafornecedor = orcamento.getCotacao();
                    if (Listafornecedor == null)
                    {
                        Listafornecedor = new ArrayList<Fornecedor>();
                    }
                    boolean existe = false;
                    for (Fornecedor f : Listafornecedor)
                    {
                        if (f.getId().equals(adcNovoFornecedor.getId()))
                        {
                            existe = true;
                            System.out.printf("existe");
                        }
                    }
                    if (!existe)
                    {
                        System.out.printf("111");
                        Listafornecedor.add(adcNovoFornecedor);
                        System.out.printf("112");
                        orcamento.setCotacao(Listafornecedor);
                        System.out.printf("113");
                        orcamentoDAO.salvar(orcamento);
                    }
                }
            }
            Usuario u = (Usuario) session.getAttribute("user");
            listUsuarioEventos = usuarioEventoDAO.buscarEvento(evento);
            Boolean gerencia = false;
            if (listUsuarioEventos.isEmpty())
            {
                System.out.print("lista vazia");
            }
            for (UsuarioEvento list : listUsuarioEventos)
            {
                if (list.getUsuario().getId().equals(u.getId()) && list.isGerenciador() && list.getEvento().getId().equals(evento.getId()))
                {
                    System.out.print("Usuario administrador do evento validado");
                    gerencia = true;
                }
            }
            if (!gerencia)
            {
                System.out.print("Usuario administrador do evento não validado");
                response.sendRedirect("listarEventos.jsp");
            }
            session.setAttribute("evento", evento);

        %>
    </head>
    <body class="fundo">
        <div class="menu_interno">
            <div class="menu_interno_logo">
                <img src="imagens/logo.png">
            </div>
            <div class="menu_interno_list">
                <div id="accordian">
                    <ul class="ul">
                        <li>
                            <h3><span class="icon-dashboard"></span><a href="../CadastroUsuario.jsp">Cadastraar Usuário</a></h3>
                        </li>
                        <li>
                            <h3><span class="icon-dashboard"></span><a href="listarEventos.jsp">Listar Eventos</a></h3>
                        </li>

                    </ul>
                </div>

            </div>
            <div class="menu_interno_rodape">
                <a href="principal.jsp"><img src="imagens/back.png"></a>
            </div>
        </div>
        <div id="container" class="content">
            <div class="margintop_content">

                <h1><%=evento.getNome()%></h1>
                <h2>Orçamento</h2>
                <%
                    OrcamentoDAO o = new OrcamentoDAO();
                    Orcamento orcamento = new Orcamento();
                    orcamento = o.buscarOrcamentoEvento(evento);
                    System.out.print("123");
                    List<Fornecedor> listaFornecedors = orcamento.getCotacao();
                    System.out.print("456");
                    int x = 1;
                    try
                    {
                        if (listaFornecedors != null)
                        {
                            for (Fornecedor ff : listaFornecedors)
                            {
                                out.print("<br/>");
                                out.print(x + "   ");
                                out.print(ff.getNome());
                                System.out.print("nm");
                                out.print(" --- ");
                                out.print(ff.getValor());
                                System.out.print("vl");
                                x++;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }
                    out.print("<br/>");
                    out.print("<br/>");
                %>

                <%if (fornecedorDAO.buscarFornecedorEvento(evento).size() > 0)
                        {%>
                <h2>Valor Total : <%=orcamento.getValor()%></h2>
                <h2>Total de usuarios no evento : <%=listUsuarioEventos.size()%></h2>
                <h2>Valor a ser pago por usuario : <%=orcamento.getValor() / listUsuarioEventos.size()%></h2>
                <h2>Parcelas : <%=6%></h2>
                <h2>Valor da parcela a ser pago por usuario : <%=((orcamento.getValor() / listUsuarioEventos.size()) / 6)%></h2>
                <%
                        try
                        {
                            String fecha = util.validaParametro(request.getParameter("fechar"));
                            if (fecha.equals("0"))
                            {
                                System.out.print("Fecha Evento");
                                for (UsuarioEvento ue : listUsuarioEventos)
                                {
                                    ue.setParcelasPagas(0);
                                    ue.setValorParcela(((orcamento.getValor() / listUsuarioEventos.size()) / 6));
                                    ue.setParcelasTotal(6);
                                    usuarioEventoDAO.salvar(ue);
                                }
                                evento.setFechado(true);
                                eventoDAO.salvar(evento);
                            }
                        }
                        catch (Exception e)
                        {
                        }
                    }%>

                <%if (evento.isFechado())
                    {
                    }
                        else
                        {%>

                <a href="gerenciarEvento.jsp?evento=<%=evento.getId()%>&fechar=0">Fechar Evento</a>
                <% }%>
                <br/>
                <hr/> 
                <br/>
                <h2>Fornecedores</h2>
                <% if (!evento.isFechado())
                        {%>
                <b><a href="cadastroFornecedor.jsp">Adicionar fornecedor</a></b>
                <% }%>
                <br/>
                <br/>
                <b>Fornecedores cadastrados no evento </b>
                <%
                    List<Fornecedor> listaFornecedor = fornecedorDAO.buscarFornecedorEvento(evento);
                %>
                <ul>
                    <%for (Fornecedor forne : listaFornecedor)
                            {%>
                    <% if (!evento.isFechado())
                            {%>
                    <a href="gerenciarEvento.jsp?evento=<%=evento.getId()%>&fornecedor=<%=forne.getId()%>">Adicionar ao pedido</a>
                    <%}%>
                    <li><%=forne.getNome()%><ul><li><%=forne.getObservacao()%></li><li><%=forne.getValor()%></li></ul></li>
                    <a>__________________________________________________</a>   
                    <br/>
                    <br/>
                    <%}%>

                </ul>

                <br/>
                <hr/>

                <h2>Usuarios</h2>
                <% if (!evento.isFechado())
                        {%>
                <b>Adicionar usuario no evento</b>

                <form method="post" action="../AdicionarUsuarioEventoServlet">
                    </br>
                    <input type="hidden" name="evento" value="<%=evento.getId()%>"/>
                    <select name="usuarioAdicionar">
                        <option value="0">Selecione o Usuario</option>
                        <%for (Usuario user : usuarioDAO.buscar(Usuario.class))
                            {
                                Boolean verifica = true;
                                for (UsuarioEvento sistema : listUsuarioEventos)
                                {
                                    if (user.getId().equals(sistema.getUsuario().getId()))
                                    {
                                        verifica = false;
                                    }
                                }
                                if (verifica)
                                {
                        %>
                        <option value="<%=user.getId()%>"><%=user.getNome()%></option>
                        <%}
                            }
                        %>
                    </select>
                    <button type="submit">Adicionar</button>
                </form>
                <%}%>
                <br/>
                <%
                    try
                    {
                        String codUsuarioEvento = util.validaParametro(request.getParameter("pagar"));
                        for (UsuarioEvento ue : listUsuarioEventos)
                        {
                            if (codUsuarioEvento.equals(String.valueOf(ue.getId())))
                            {
                                if (ue.getParcelasPagas() < ue.getParcelasTotal())
                                {
                                    ue.setParcelasPagas(ue.getParcelasPagas() + 1);
                                    usuarioEventoDAO.salvar(ue);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }
                    try
                    {
                        String codUsuarioEvento = util.validaParametro(request.getParameter("npagar"));
                        for (UsuarioEvento ue : listUsuarioEventos)
                        {
                            if (codUsuarioEvento.equals(String.valueOf(ue.getId())))
                            {
                                if (ue.getParcelasPagas() > 0)
                                {
                                    ue.setParcelasPagas(ue.getParcelasPagas() - 1);
                                    usuarioEventoDAO.salvar(ue);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }
                %>



                <b>Usuarios cadastrados no evento </b>
                <ul>
                    <%for (UsuarioEvento ue : listUsuarioEventos)
                            {%>
                    <li><%=ue.getUsuario().getNome()%>
                        <ul>
                            <li>
                                <% if (evento.isFechado())
                                        {%>
                                <a href="gerenciarEvento.jsp?evento=<%=evento.getId()%>&pagar=<%=ue.getId()%>">PAGAR PARCELA</a><br/>

                                <a href="gerenciarEvento.jsp?evento=<%=evento.getId()%>&npagar=<%=ue.getId()%>">REMOVER PAGAMENTO</a><br/>
                                <%
                                        out.print("Parcelas Pagas : " + ue.getParcelasPagas());
                                        out.print("</br>");
                                        out.print("Parcelas Restantes : " + (ue.getParcelasTotal() - ue.getParcelasPagas()));
                                        out.print("</br>");
                                        out.print("Parcelas Totais : " + ue.getParcelasTotal());
                                        out.print("</br>");
                                        out.print("Valor da parcela : " + ue.getValorParcela());
                                        out.print("</br>");
                                        out.print("Total pago : " + (ue.getValorParcela() * ue.getParcelasPagas()));
                                        out.print("</br>");
                                        out.print("Falta Pagar : " + ((ue.getValorParcela() * ue.getParcelasTotal()) - (ue.getValorParcela() * ue.getParcelasPagas())) + "");
                                        } %>

                            </li>

                        </ul>
                    </li>


                    <%}%>


                </ul>

                <br/><hr/><br/>



            </div>
        </div>
        <div class="lateral_esq">
            <img src="imagens/capa3.png">
        </div>

    </body>





</html>
